/**
 * 
 */
package schach.server.model;

import java.util.ArrayList;

/**
 * @author Freddy
 *
 */
public class Turm extends Figur {

	public Turm(Feld position, boolean alive, boolean black) {
		super(position, alive, black);
	}
	@Override
	public ArrayList<Feld> crossedFields(Feld f, boolean schlagen) throws NullPointerException {
		ArrayList<Feld> results = new ArrayList<Feld>();
		if(f.getX() == getPosition().getX() && f.getY() == getPosition().getY())
		{
			throw new NullPointerException();
		}
		else if(f.getX() == getPosition().getX()){
			
			int deltaY = f.getY() - getPosition().getY();
			
			if (deltaY > 0){
				for(int i = 1; i < deltaY; i++){
					results.add(new Feld(f.getX(), f.getY() - i));
				}
			}
				
			if (deltaY < 0){
				for (int i = 1; i < Math.abs(deltaY); i++){
					results.add(new Feld(f.getX(), f.getY() + i));
				}
			}
		}
		else if(f.getY() == getPosition().getY()){
			
			int deltaX = f.getX() - getPosition().getX();
			
			if (deltaX > 0){
				for(int i = 1; i < deltaX; i++){
					results.add(new Feld(f.getY(), f.getX() - i));
				}
			}
			if (deltaX < 0){
				for(int i = 1; i < Math.abs(deltaX); i++){
					results.add(new Feld(f.getY(), f.getX() + i));
				}
			}
		}
		else{
			throw new NullPointerException();
		}
		return results;
	}
}
